package foodmaterial.service;

import foodmaterial.dto.CustomerInfoDto;
import foodmaterial.dto.MealsTypeDto;
import foodmaterial.entity.*;

import java.util.List;
import java.util.Map;

public interface CustomerService {

    static final String MEALS_TYPE_NAME_CACHE = "mealsTypeName" ;

    static final String ROUTER_INFO_CACHE = "routerInfo" ;

    String addRouterInfo(RouterInfo routerInfo);
    String modifyRouterInfo(RouterInfo routerInfo);
    List<RouterInfo> queryRouterInfo(RouterInfo routerInfo) ;
    List<RouterInfo> queryRouterInfo(String db) ;

    String addSupplyType(SupplyType supplyType);
    String modifySupplyType(SupplyType supplyType);
    List<SupplyType> querySupplyType(SupplyType supplyType) ;

    String addSupplyTeam(SupplyTeam supplyTeam);
    String modifySupplyTeam(SupplyTeam supplyTeam);
    List<SupplyTeam> querySupplyTeam(SupplyTeam supplyTeam) ;

    String addSupplyArea(SupplyArea supplyArea);
    String modifySupplyArea(SupplyArea supplyArea);
    List<SupplyArea> querySupplyArea(SupplyArea supplyArea) ;

    String addCustomerInfo(CustomerInfo customerInfo);
    String modifyCustomerInfo(CustomerInfo customerInfo);
    String modifyCustomerInfoOrder(List<CustomerInfo> customerInfos);
    int stopCustomer(CustomerInfo customerInfo) ;
    String modifyPassword(CustomerInfoDto dto) ;
    String resetPassword(SysUser user) ;
    List<CustomerInfo> queryCustomerRoot() ;
    List<CustomerInfo> queryCustomerInfo(CustomerInfoDto dto) ;

    //按照类型查询客户
    List<CustomerInfo> queryCustomerInfoByType(List<String> params) ;
    List<String> queryDriver() ;

    String addMealsType(MealsType mealsType) ;
    String modifyMealsType(MealsType mealsType) ;
    int removeMealsType(MealsType mealsType) ;
    List<MealsType> queryMealsType(MealsTypeDto dto) ;
    List<MealsType> queryCustomerToTeam(Map<String,Object> params) ;

    String addMealsTypeName(MealsTypeName mealsTypeName) ;
    String modifyMealsTypeName(MealsTypeName mealsTypeName) ;
    String modifyMealsTypeNameOrderAndCalType(List<MealsTypeName> data,String db) ;
    int removeMealsTypeName(MealsTypeName mealsTypeName) ;
    List<MealsTypeName> queryMealsTypeName(MealsTypeName mealsTypeName) ;
    List<MealsTypeName> queryMealsTypeName(String db) ;
    List<String> queryMealsTypeCalName();

    String editCustomerFoodMaterialSupplier(Map<String,Object> data) ;
    List<CustomerFoodMaterialSupplier> queryCustomerFoodMaterialSupplier(CustomerFoodMaterialSupplier customerFoodMaterialSupplier) ;

    String clearCustomer() ;
}
